package com.scl.yygh.cmn.controller;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.scl.yygh.cmn.service.DictService;
import com.scl.yygh.common.result.Result;
import com.scl.yygh.common.result.ResultCodeEnum;
import com.scl.yygh.model.cmn.Dict;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;

/**
 * @author 超哥
 * @create 2021-07-21 22:38
 * ////////////////////////////////////////////////////////////////////
 * //                          _ooOoo_                               //
 * //                         o8888888o                              //
 * //                         88" . "88                              //
 * //                         (| ^_^ |)                              //
 * //                         O\  =  /O                              //
 * //                      ____/`---'\____                           //
 * //                    .'  \\|     |//  `.                         //
 * //                   /  \\|||  :  |||//  \                        //
 * //                  /  _||||| -:- |||||-  \                       //
 * //                  |   | \\\  -  /// |   |                       //
 * //                  | \_|  ''\---/''  |   |                       //
 * //                  \  .-\__  `-`  ___/-. /                       //
 * //                ___`. .'  /--.--\  `. . ___                     //
 * //              ."" '<  `.___\_<|>_/___.'  >'"".                  //
 * //            | | :  `- \`.;`\ _ /`;.`/ - ` : | |                 //
 * //            \  \ `-.   \_ __\ /__ _/   .-` /  /                 //
 * //      ========`-.____`-.___\_____/___.-`____.-'========         //
 * //                           `=---='                              //
 * //      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^        //
 * //         佛祖保佑       永无BUG     永不修改                        //
 * ////////////////////////////////////////////////////////////////////
 * 佛曰:
 * 写字楼里写字间，写字间里程序员；
 * 程序人员写程序，又拿程序换酒钱。
 * 酒醒只在网上坐，酒醉还来网下眠；
 * 酒醉酒醒日复日，网上网下年复年。
 * 但愿老死电脑间，不愿鞠躬老板前；
 * 奔驰宝马贵者趣，公交自行程序员。
 * 别人笑我忒疯癫，我笑自己命太贱；
 * 不见满街漂亮妹，哪个归得程序员？
 */
@Api(tags = "数据字典管理")
@RestController
@RequestMapping("/admin/cmn/dict")
@CrossOrigin
public class DictController {

    @Autowired
    private DictService dictService;

    @ApiOperation("根据数据id获取子数据")
    @GetMapping("selChildDictById/{id}")
    public Result<List<Dict>> findListByParentID(@PathVariable("id") Long id) {
        List<Dict> list = dictService.findByParentId(id);
        if (list.size() == 0) {
            return Result.failEnum(ResultCodeEnum.NOT_FOUND_DATA);
        } else {
            return Result.ok(list);
        }
    }

    /***
     *
     * @param response
     * @return
     */
    @ApiOperation("导出方法")
    @GetMapping("exportData")
    public void exportData(HttpServletResponse response) {
        dictService.exportDictData(response);
    }

    @ApiOperation("导入方法")
    @PostMapping("importData")
    public void importData(MultipartFile file) {
        dictService.importDictData(file);
    }

    @ApiOperation("查询单条数据字典信息")
    @GetMapping("findById/{id}")
    public Result<Dict> findById(@PathVariable("id") Long id) {
        Dict dict = dictService.findById(id);
        if (dict != null) {
            return Result.ok(dict);
        } else {
            return Result.failEnum(ResultCodeEnum.NOT_FOUND_DATA);
        }
    }

    @ApiOperation("更新字典信息")
    @PostMapping("updateById")
    public Result updateById(@RequestBody Dict dict){
        boolean flag = dictService.updateById(dict);
        return flag?Result.ok():Result.fail(null);
    }

}
